package com.xiaoyy.core.common.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * excel表头实体
 *
 * @author chenzh04
 * @date 2018-5-17
 **/
@Data
public class ExcelHeaderVO implements Serializable {
    /**
     * 第几列
     * */
    @ApiModelProperty(value = "第几列")
    private Integer index;
    /**
     * 对应数据字段key
     * **/
    @ApiModelProperty(value = "对应数据字段key")
    private String key;

    /**
     * 表头标题
     * **/
    @ApiModelProperty(value = "表头标题")
    private String title;

    /**
     * 对应数据父字段key
     * **/
    @ApiModelProperty(value = "对应数据父字段key")
    private String parentKey;

     /**
      * 宽度
      * **/
    @ApiModelProperty(value = "宽度")
    private Short width;
    /**
      * 合并 是否需要赋值
      * **/
    @ApiModelProperty(value = "合并 是否需要赋值")
    private Boolean setFlag;
     /**
      * 合并行 开始
      * **/
     @ApiModelProperty(value = "合并行 开始")
    private Integer startRow;
     /**
      * 合并行 结束
      * **/
     @ApiModelProperty(value = "合并行 结束")
    private Integer endRow;
     /**
      * 合并列 开始
      * **/
     @ApiModelProperty(value = "合并列 开始")
    private Integer startColumn;
     /**
      * 合并列 结束
      * **/
     @ApiModelProperty(value = "合并列 结束")
    private Integer endColumn;
    /**
     * 类型
     * */
    @ApiModelProperty(value = "类型")
    private String cellType = CellTypeEnum.DEFAULT.getType();
    /**
     * 下拉值
     * */
    @ApiModelProperty(value = "下拉值")
    private List<ExcelDictVO> codeList;
    @ApiModelProperty(value = "下级表头")
    private List<ExcelHeaderVO> children;

    public enum CellTypeEnum {
        DEFAULT("default", "常规"),
        TEXT("text", "文本"),
        NUMBER2("number2", "两位小数"),
        DATE("date", "日期到日"),
        DATETIME("datetime", "日期到秒"),
        SELECT("select", "下拉框");
        private String type;
        private String desc;

        CellTypeEnum(String type, String desc) {
            this.type = type;
            this.desc = desc;
        }

        public String getType() {
            return type;
        }
    }
}
